const os = require('os');
const path = require('path');
function resolve(dir) {
    return path.join(__dirname, dir)
}

module.exports = {
    publicPath: '/',
    productionSourceMap: false,
    lintOnSave: false,
    devServer: {
        host: '0.0.0.0',
        port: 1234,
        compress: true,
        disableHostCheck: true,
        proxy: {
            '/api': {
                // 此处的写法，目的是为了 将 /api 替换成 https://www.baidu.com/
                target: 'http://test-gateway.jinyi999.cn/rjhy-data-monitor-center/api/',
                // 允许跨域
                changeOrigin: true,
                ws: true,
                pathRewrite: {
                    '^/api': ''
                }
            }
        }
    },
    pages: {
        index: {
            // page 的入口
            entry: 'src/main.ts'
        },
    },
    // 多核打包
    parallel: os.cpus().length > 1,
    chainWebpack: (config) => {
        // 删除自动计算预加载资源
        config.plugins.delete('preload-index')
        // 删除预加载资源
        config.plugins.delete('prefetch-index')
        config.resolve.alias
            .set('@pages', resolve('src/pages'))
            .set('@components', resolve('src/components'))
            .set('@widgets', resolve('src/widgets'))
    },
    configureWebpack: config => {
        let ForkTsCheckerPlugin; 
        if(config.plugins.length > 0){
            ForkTsCheckerPlugin = config.plugins.find(element =>{
                return  element.workersNumber && element.memoryLimit;
            })
        }
        // if (Object.is(config.mode, 'production')) {
        //     // 最大进程数
        //     ForkTsCheckerPlugin.workersNumber = os.cpus().length > 4 ? 4 : os.cpus().length; // 会占用额外内存不释放，不建议开发阶段使用
        //     // 单个进程最大使用内存
        //     ForkTsCheckerPlugin.memoryLimit = 8192;
        // } else {
        //     // 最大进程数
        //     // ForkTsCheckerPlugin.workersNumber = os.cpus().length > 4 ? 4 : os.cpus().length; // 会占用额外内存不释放，不建议开发阶段使用
        //     // 单个进程最大使用内存
        //     ForkTsCheckerPlugin.memoryLimit = 8192;
        // }
    },
}